Chrome 137

安定版リリース日: 2025 年 5 月 27 日

特に明記しない限り、以下の変更は Android、ChromeOS、Linux、macOS、Windows 版 Chrome 137 Stable チャンネル リリースに適用されます。

CSS と UI

CSS if() 関数

CSS の if() 関数を使用すると、条件付き値を簡潔に表現できます。セミコロンで区切られた一連の条件値ペアを指定します。この関数は、各条件を順番に評価し、最初の true 条件に関連付けられた値を返します。条件のいずれも true と評価されない場合、関数は空のトークン ストリームを返します。これにより、複雑な条件ロジックをシンプルかつ簡潔に表現できます。

例:

div {
  color: var(--color);
  background-color: if(style(--color: white): black; else: white);
}

.dark {
  --color: black;
}

.light {
  --color: white;
}
<div class="dark">dark</div>
<div class="light">light</div>

トラッキング バグ #346977961 | ChromeStatus.com のエントリ | 仕様

CSS reading-flowreading-order プロパティ

reading-flow CSS プロパティは、フレックス、グリッド、ブロック レイアウト内の要素がユーザー補助ツールに公開され、Tab キーによるフォーカス ナビゲーションを使用してフォーカスされる順序を制御します。

reading-order CSS プロパティを使用すると、作成者は読み上げフロー コンテナ内の順序を手動でオーバーライドできます。これは整数で、デフォルト値は 0 です。

これらのプロパティの詳細については、論理的な連続フォーカス ナビゲーションに CSS 読み取りフローを利用するをご覧ください。また、例を試すこともできます。

バグのトラッキング #40932006 | ChromeStatus.com のエントリ | 仕様

筆記体での文字間隔を無視する

この機能では、仕様に沿ってデベロッパーが指定した、手書き文字の文字間隔の設定を無視するロジックを追加します。これにより、文字間隔が単語の構造を乱さないようにし、手書き文字を使用するユーザーのユーザー エクスペリエンスを改善することを目的としています。

この機能により、フォントには高度なタイポグラフィ機能がなくても、筆記体は読みやすく、適切な間隔で表示されます。

Chromium でこの機能が適用されるスクリプトは、アラビア語、ハニフィー語、ロヒンギャ語、マンダ語、モンゴル語、N'Ko、Phags Pa、シリア語です。これらのスクリプトは、仕様に基づいて筆記体と見なされます。

バグのトラッキング #40618336 | ChromeStatus.com のエントリ | 仕様

Selection API getComposedRangesdirection

この機能では、Selection API の 2 つの新しい API メソッドが提供されます。

  • Selection.direction: 選択範囲の方向を noneforwardbackward のいずれかとして返します。
  • Selection.getComposedRanges(): 0 または 1 のリストが返されます。コンポーズ StaticRange

合成された StaticRange はシャドウ境界を越えることができますが、通常の Range は越えられません。

次に例を示します。

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

選択範囲が、shadowRoots リストに指定されていないシャドウルート境界を越える場合、StaticRange のエンドポイントは、そのツリー外側に再スコープされます。これにより、Chrome で不明なシャドウ ツリーが公開されなくなります。

バグのトラッキング #40286116 | ChromeStatus.com のエントリ | 仕様

offset-path: shape() を支援する

offset-path: shape() をサポートし、レスポンシブ シェイプを使用してアニメーション パスを設定できるようにしました。

バグのトラッキング #389713717 | ChromeStatus.com のエントリ | 仕様

SVGSVGElementtransform 属性をサポート

この機能により、transform 属性を使用して、拡大 / 縮小、回転、移動、スキューなどの変換プロパティを <svg> ルート要素に直接適用できます。この機能強化により、SVG 座標系全体またはそのコンテンツ全体を操作できるため、動的でレスポンシブなインタラクティブなベクター グラフィックをより柔軟に作成できます。この属性をサポートすることで、追加のラッパー要素や複雑な CSS の回避策を必要とせずに <svg> 要素を変換できるため、スケーラブルでアニメーション化されたウェブ グラフィックの作成プロセスを効率化できます。

バグのトラッキング #40313130 | ChromeStatus.com のエントリ | 仕様

accent-color プロパティのシステム アクセント カラー

これにより、フォーム要素にオペレーティング システムのアクセント カラーを使用できます。accent-color CSS プロパティを使用すると、チェックボックス、ラジオボタン、進行状況バーなどのフォーム要素に、ユーザーのオペレーティング システムで定義されたアクセント カラーが自動的に適用されます。これは 2021 年から macOS でサポートされており、Windows と ChromeOS でもサポートされるようになりました。

バグのトラッキング #40764875 | ChromeStatus.com のエントリ | 仕様

フラグメントを省略して、<use> が外部ドキュメントのルート要素を参照できるようにします。

この機能は、参照要件を緩和することで、SVG <use> 要素を効率化します。Chrome 137 より前は、SVG ドキュメント内でフラグメントを明示的に参照する必要がありました。フラグメント ID が指定されていない場合、<use> はターゲットを解決できず、レンダリングも参照も行われません。

たとえば、フラグメント ID を使用して外部ファイルを参照する <use> 要素は次のようになります。

<svg>
  <use xlink:href="myshape.svg#icon"></use>
</svg>

この例では、#iconmyshape.svg 内の id="icon" を持つ要素を指すフラグメント ID です。

フラグメント識別子なし:

<svg>
  <use xlink:href="myshape.svg"></use>
</svg>

この機能を使用すると、フラグメントを省略するか、外部 svg ファイル名を指定するだけで、ルート要素が自動的に参照されるため、ID をルートに割り当てるためだけに参照ドキュメントを変更する必要がなくなります。この機能強化により、この手動編集プロセスが簡素化され、効率が向上します。

バグのトラッキング #40362369 | ChromeStatus.com のエントリ | 仕様

キャンバスの浮動小数点数カラータイプ

CanvasRenderingContext2DOffscreenCanvasRenderingContext2DImageData で浮動小数点ピクセル形式(8 ビット固定小数点形式ではなく)を使用できるようになりました。

これは、高精度アプリケーション(医療画像化など)、ハイ ダイナミック レンジ コンテンツ、リニア作業用カラースペースに必要です。

バグのトラッキング #40245602 | ChromeStatus.com のエントリ | 仕様

view-transition-name: match-element

match-element 値は、要素の ID に基づいて一意の ID を生成し、この要素の名前を変更します。これは、要素が移動され、ビュー遷移でアニメーション化されるシングルページ アプリのケースで使用されます。

バグのトラッキング #365997248 | ChromeStatus.com のエントリ | 仕様

お支払い

payment WebAuthn 認証情報の作成時にスローされるエラータイプを調整: SecurityErrorNotAllowedError に変更

payment 認証情報の WebAuthn 認証情報の作成時にスローされるエラータイプを修正しました。過去の仕様が一致しないため、ユーザーの有効化なしでクロスオリジン iframe に payment 認証情報を作成すると、支払い以外の認証情報でスローされる NotAllowedError ではなく、SecurityError がスローされます。

これは互換性を破る変更ですが、ニッチな変更です。以前はスローされたエラーのタイプ(e instanceof SecurityError など)を検出していたコードが影響を受けます。認証情報の作成中にエラーを一般に処理するコード(catch (e) など)は、引き続き正しく機能します。

バグのトラッキング #41484826 | ChromeStatus.com のエントリ | 仕様

ウェブ API

blob URL のパーティショニング: 取得/ナビゲーション

ストレージ パーティションの延長として、Chrome では、ストレージキー(トップレベル サイト、フレーム オリジン、has-cross-site-ancestor ブール値)による Blob URL アクセスのパーティショニングを実装します。ただし、フレーム オリジンのみでパーティショニングされるトップレベル ナビゲーションを除きます。この動作は、現在 Firefox と Safari の両方で実装されている動作と類似しており、ストレージ パーティションの一部として、blob URL を他のストレージ API で使用されるパーティショニング スキームに合わせた形で使用します。また、Chrome では、レンダラによって開始された Blob URL へのトップレベル ナビゲーションに対して noopener が適用されます。この場合、対応するサイトは、ナビゲーションを実行するトップレベル サイトのクロスサイトです。これにより、Chrome の動作と Safari の類似する動作との間の整合性が保たれるようになり、関連する仕様にもこれらの変更が反映されるようになります。

バグのトラッキング #40057646 | ChromeStatus.com のエントリ

応答しないウェブページのクラッシュ レポートのコールスタック

この機能は、JavaScript コードが無限ループを実行しているなどの非常に長い計算が原因でウェブページが応答しなくなったときに、JavaScript 呼び出しスタックをキャプチャします。これにより、デベロッパーは応答しない原因を特定し、簡単に修正できます。理由が「応答なし」の場合、JavaScript 呼び出しスタックがクラッシュ レポート API に含まれます。

トラッキング バグ #1445539 | ChromeStatus.com のエントリ | 仕様

Document-Isolation-Policy

Document-Isolation-Policy を使用すると、ドキュメントで crossOriginIsolation を有効にできます。COOP や COEP をデプロイする必要はなく、ページの crossOriginIsolation ステータスも関係ありません。このポリシーはプロセス分離によってサポートされています。また、ドキュメントの CORS 以外のクロスオリジン サブリソースは、認証情報なしで読み込まれるか、CORP ヘッダーが必要になります。

バグのトラッキング #333029146 | ChromeStatus.com のエントリ | 仕様

ウェブ暗号の Ed25519

この機能により、Web Cryptography API で Curve25519 アルゴリズム(署名アルゴリズム Ed25519)のサポートが追加されます。

バグのトラッキング用番号: 1370697 | ChromeStatus.com のエントリ | 仕様

HSTS によるトラッキング防止

HSTS キャッシュを使用したサードパーティによるユーザー トラッキングを軽減します。

この機能は、トップレベル ナビゲーションの HSTS アップグレードのみを許可し、サブリソース リクエストの HSTS アップグレードはブロックします。これにより、サードパーティのサイトが HSTS キャッシュを使用してウェブ上のユーザーをトラッキングできなくなります。

トラッキング バグ #40725781 | ChromeStatus.com のエントリ

WebAssembly

JavaScript Promise の統合

JavaScript Promise Integration(JSPI)は、WebAssembly アプリケーションを JavaScript Promise と統合できる API です。

これにより、WebAssembly プログラムが Promise の生成元として機能し、Promise を含む API とやり取りできるようになります。

特に、アプリケーションが JSPI を使用して Promise を含む(JavaScript)API を呼び出すと、WebAssembly コードが中断され、WebAssembly プログラムの元の呼び出し元に、WebAssembly プログラムが最終的に完了したときに満たされる Promise が渡されます。

ChromeStatus.com のエントリ | 仕様

WebAssembly ブランチ ヒント

特定の分岐命令が特定のパスをたどる可能性が高いことをエンジンに通知することで、コンパイルされた WebAssembly コードのパフォーマンスを向上させます。

これにより、エンジンはコード レイアウト(命令キャッシュ ヒットの改善)とレジスタ割り当てについてより適切な判断を行うことができます。

ChromeStatus.com のエントリ | 仕様

WebGPU

GPUTextureViewexternalTexture バインディング用)

GPUBindGroup の作成時に、externalTexture バインディングに GPUTextureView を使用できるようになりました。

トラッキング バグ #398752857 | ChromeStatus.com のエントリ | 仕様

copyBufferToBuffer のオーバーロード

GPUCommandEncoder copyBufferToBuffer() メソッドに、オフセットとサイズのパラメータ(省略可)を指定できる新しいオーバーロードを使用してバッファ全体をコピーする簡単な方法が追加されました。

ChromeStatus.com のエントリ | 仕様

Enterprise

IP アドレスのロギングとレポート

Chrome Enterprise では、ローカル IP アドレスとリモート IP アドレスを収集して報告し、それらをセキュリティ調査ログ(SIT)に送信することで、セキュリティ モニタリングとインシデント対応の機能を強化しています。また、オプションで、管理者が Chrome Enterprise レポート コネクタを介して、自社およびサードパーティの SIEM プロバイダに IP アドレスを送信できるようになります。

これは Chrome Enterprise Core をご利用のお客様が利用できます。

ChromeStatus.com のエントリ

オリジン トライアル

フルフレームレートのレンダリング ブロック属性

ブロック属性に新しいレンダリング ブロック トークン full-frame-rate を追加しました。レンダラが full-frame-rate トークンでブロックされると、レンダラは低いフレームレートで動作し、読み込みに多くのリソースを予約します。

バグのトラッキング #397832388 | ChromeStatus.com のエントリ

レンダリングされていない iframe でメディアの再生を一時停止する

media-playback-while-not-rendered 権限ポリシーを追加して、埋め込みウェブサイトがレンダリングされていない埋め込み iframe のメディア再生を一時停止できるようにします。つまり、display プロパティが none に設定されている iframe のメディア再生を一時停止できるようにします。これにより、デベロッパーはよりユーザー フレンドリーなエクスペリエンスを構築できるようになります。また、ユーザーには表示されないコンテンツの再生をブラウザに任せることで、パフォーマンスも向上します。

オリジン トライアル | トラッキング バグ #351354996 | ChromeStatus.com のエントリ

Rewriter API

Rewriter API は、オンデバイスの AI 言語モデルを基に、リクエストされた方法で入力テキストを変換して言い換えます。デベロッパーは、この API を使用して、文字数の制限に収まるようにテキスト内の冗長性を削除したり、対象読者に合うようにメッセージを言い換えたり、有害な表現が使用されているメッセージが見つかった場合により建設的なものにしたり、投稿や記事を言い換えてよりシンプルな単語やコンセプトを使用したりできます。

オリジン トライアル | バグのトラッキング #358214322 | ChromeStatus.com のエントリ | 仕様

Writer API

Writer API は、デバイス上の AI 言語モデルを基に、文章作成タスクのプロンプトから新しい文章を作成するために使用できます。デベロッパーは、この API を使用して、構造化データのテキストによる説明を生成したり、レビューや商品説明に基づいて商品に関する投稿を作成したり、長所と短所のリストから詳細ビューを拡張したりできます。

オリジン トライアル | トラッキング バグ #357967382 | ChromeStatus.com のエントリ | 仕様